classical inheritance vs prototypal inheritance in javascript